package com.tengju.motivation.domain.model.activity;

import com.tengju.motivation.domain.model.goods.Goods;
import com.tengju.motivation.domain.shared.BasePage;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

public interface ActivityRepository {

    List<Activity> getActivityList(String name, LocalDateTime sinceDate);

    BasePage<Activity> getActivityList(String name, int offset, int limit);

    Activity getActivityById(ActivityId activityId);

    List<Activity> getActivityById(List<ActivityId> activityIds);

    int countTarget(ActivityId activityId);

    List<ActivityTarget> getTargetList(ActivityId activityId);

    void delete(ActivityId activityId);

    List<Long> listNoEndActivityIds(LocalDate td);

    List<Long> listValidTimeActivityIds(LocalDate activityStartDate, LocalDate activityEndDate);

    void add(List<ActivityTarget> targets);

    void update(ActivityTarget target);

    void remove(List<TargetId> targetIds);
}
